<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数组</title>
<script type="text/javascript">
/*创建数组1：
var arr = new Array();  //创建新数组
arr[0] = "数据1";  
arr[2] = "数据3";
for(var i in arr) {
    alert("索引"+ i +"对应的值：" + arr[i]); //数组下标从0开始 
}
alert("数组长度："+arr.length);
alert("未赋值的索引对应的值："+arr[1]);  //跳过一个索引不赋值时，自动填充为undefined类型
*/
/*创建数组2：
var ar1 = new Array(999);//数组长度为999[只有1个参数时，为数组长度]
var arr = [999];         //创建数组，数组长度为1，值为999[用此方法声明数组!减少代码量！没有歧义！]

arr[arr.length] = "end"; //向数组末尾添加数据
arr.push(1,2,3);    //push()函数专门向数组末尾添加数据，返回值为数组新的长度；

arr[arr.length-1];  //数组最后一位的值 end[数组最大下标为数组长度-1]

delete arr[0];      //删除元素,若删除成功则返回true，不会改变数组长度
arr[0] = undefined; //删除元素[直接赋值为undefined]  
arr.join("&");      //返回值为：将数组连接符改为&
//alert(arr.join("&"));
*/

/*字符串性能测试[代码执行前的时间  减 代码执行后的时间]*/
var da1 = new Date();
var t1  = da1.getTime();
var ar3 = [];
for(i=0;i<9999999;i++){
    ar3.push("字符串连接&");
}
var str1 = ar3.join("");
document.write("使用数组："+( (new Date()).getTime()-t1) +"<br />");


var da2 = new Date();
var t2  = da2.getTime();
var str2= "";
for(i=0;i<9999999;i++){
    str2+="字符串连接&";
}
document.write("使用字符串："+( (new Date()).getTime()-t2) );
//连接大量字符串时，1、定义一个空数组2、将字符串push()进去3、然后join("")去掉数组的连接符!!!

/*数组的操作：*/
 var arr = [1,2,3,4,5];
   /*
   var aa= arr.slice(0,5);  //提取数组元素，返回提取的元素，不改变原数组；[开始位置索引，提取个数]
   alert(aa);
   alert(arr);
   */
   //var a = arr.splice(0,1); //删除数组元素，返回删除的元素，改变原数组；[开始位置索引，删除个数(省略则删除所有元素)]
   var a = arr.splice(1,2,"aa");//替换数组元素，返回被替换的元素，改变原数组；[开始位置索引，被替换个数，替换元素]
   alert(a);
   alert(arr);





</script>
</head>

<body>
</body>
</html>
